<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="theme-color" content="#33474d">
	<title>为什么要学 Python | 失落的乐章</title>
	<link rel="stylesheet" href="/css/style.css" />
	
      <link rel="alternate" href="/atom.xml" title="失落的乐章" type="application/atom+xml">
    
</head>

<body>

	<header class="header">
		<nav class="header__nav">
			
				<a href="/archives" class="header__link">Archive</a>
			
				<a href="/tags" class="header__link">Tags</a>
			
				<a href="/atom.xml" class="header__link">RSS</a>
			
		</nav>
		<h1 class="header__title"><a href="/">失落的乐章</a></h1>
		<h2 class="header__subtitle">技术面前，永远都是学生。</h2>
	</header>

	<main>
		<article>
	
		<h1>为什么要学 Python</h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Python/">Python</a>
			</span>
		
	</div>

	

	
		<h1 id="为什么要学-Python"><a href="#为什么要学-Python" class="headerlink" title="为什么要学 Python"></a>为什么要学 Python</h1><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;现阶段，掌握一门开发语言已经成为高级运维工程师的必备计能，不会开发，你就不能充分理解你们系统的业务流程，你就不能帮助调试、优化开发人开发的程序，开发人员有的时候很少关注性能的问题，这些问题就得运维人员来做，一个业务上线了，导致CPU使用过高，内存占用过大，如果你不会开发，你可能只能查到进程级别，也就是哪个进程占用这么多，然后呢？然后就交给开发人员处理了，这样咋体现你的价值？<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;另外，大一点的公司，服务器都上几百，上千，甚至数万台，这种情况下怎样做自动化运维？用Shell写脚本for循环？呵呵，歇了吧，Shell也就适合简单的系统管理工作。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;到复杂的自动化任务还得要用专门的开发语言。你可能说了，自动化管理有专门的开源软件监控也有，直接拿来用下就好了，但是现有的开源软件如Puppet、Saltstack、    OpenStack、Zabbix、Nagios 等多为通用的软件，不可能完全适用你公司的所有需求，当你需要做定制、做二次开发的时候，你咋办？找开发部门？<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;开发部门不懂运维的实际业务逻辑，写出来的东西太烂不能用，我自己也做运维系统，6年运维工作经验，开发出来的第一版照样烂的不行，这还是懂的运维业务逻辑的，让开发人员来做，跑偏可能更多了，这就是为什么我见过很多公司自行开发运维平台，最后都扔那了。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;其次，不会运维开发，你就不能自己写运维平台复杂的运维工具，一切要借助于找一些开源软件拼拼凑凑，如果是这样，那就请不要抱怨你的工资低，你的工作不受重视了，话说人家FaceBook一个运维工程师管2万台机器，运维工程师年薪十几万USD，你以为人家是盖的呢？哪个不是身怀绝技，开发运维兼备？</p>
<h2 id="为什么要学Python？"><a href="#为什么要学Python？" class="headerlink" title="为什么要学Python？"></a>为什么要学Python？</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Python第一是个非常牛B的脚本语言，能满足绝大部分自动化运维的需求，又能做后端C/S架构，又能用WEB框架快速开发出高大上的Web界面，只有当你自已有能力做出一套运维自动化系统的时候，你的价值才体现出来，你才有资格跟老板谈重视，否则，还是老老实实回去装机器吧。</p>
<h2 id="运维开发为什么要用Python？"><a href="#运维开发为什么要用Python？" class="headerlink" title="运维开发为什么要用Python？"></a>运维开发为什么要用Python？</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Good question, 为什么不用PHP，JAVA， C++，RUBY，这里我只能说，见人见智， 如果你碰巧已经掌握了除Python之外的其它语言，那你爱用啥用啥，如果你是一个连SHELL都还没写明白的新手，想学个语言的话，请用Python，为什么呢？<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;首先，PHP是跟Python比的最多的，其实他俩根本就不用比，为什么呢？两个语言适用性不同，PHP主要适用于Web开发，可以迅速的做出中小型，轻量级的WEB网站，但后端嘛，基本还是要借助其它语言，借助什么语言呢？Shell？Python？呵呵。而Python呢，是个综合语言，前后端都可以，单拿出来比Web，也一点不比PHP差，但为什么Web方向上    PHP比Python要火？<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;先入为主嘛，PHP 90年代诞生就是做Web的，Python2000年后才出现Web框架，但论优秀程度上，Python的Web框架基本上出其无左，至少是跟PHP比。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;那JAVA呢？好吧，一个臃肿、中庸、豪无新意的语言，还是老老实实用它来做ERP吧，搞个运维小平台，用JAVA真心没啥必要，在我看来，JAVA就是稳定的中年男人，稳定、成熟、秃顶，而Python代表的就是青春，简洁、快、干净、帅！<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;C++/C，这个嘛，我只能说，如果你会了Python,又会C的话，那你会更吃香，但是不会C的话，其实也无大碍，基本上做运维的人，搞搞C就是为了来装B的，因为多数情况下你都到不了看系统底层源码的程度， 不过如果你学好了Python之后，还是建议你学习下    C++，毕竟相比Python这个动态语言来讲，C++的效率还是高很多的，但对新手来讲，不建议做为第一门语言开始学习，为什么呢？打击自信心…呵呵，你懂的<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Ruby，小日本开发的，还不错，风格跟Python有点像，因为Ruby onrails出了名，国外用的比较多，国内，放心吧，没戏，Python已经把它的想象空间都占死了。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;当然还有新的语言GO，有些搞运维的看见做开发的人员搞GO，也想凑热闹，觉得是未来，我想说，别瞎没事跟风，GO再成功，也不会变成运维开发语言。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;有些人觉得Python效率底，说他不能支持多线程，OH，好吧，这个还有点说对了，但是我想问，看我这篇文章的有几个做过搜索引擎开发？有几个做个上亿PV的并发网站开发？<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;有几个看过LINUX内核源码？如果没有，请别瞎跟着传了，知道PYTHON为什么不支持多线程吗？这句话问错了，其实Python支持多线程，只是不支持多CPU多线程，也就是一个程序spawn出来的多线程只能占用一个CPU，但是为什么呢？噢，因为GIL，GIL是什么东东，请自行补脑。。。但是你非得用多线程吗？你可以用多进程呀，再牛B你还可以用协程呀，这些Python支持的都很好呀，如果你的程序逻辑不好，搞个多线程也快不起来。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;我认识一个博士讲过一句话，我觉得不错，他说，程序效率高低，80%都是写程序的人决定了，语言本身就占20%，所以下次有人再说PYTHON效率低的时候，请让他先回去自己检查下自己的程序多了多少无用的逻辑、循环等等。这个博士自己用Python写的WEB程序，一台服务器每天能处理上亿请求，一秒并发近两万，什么WEB框架这么牛B？　别问它是谁，它叫tornado。</p>
<h2 id="Python能否自学？"><a href="#Python能否自学？" class="headerlink" title="Python能否自学？"></a>Python能否自学？</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;当然可以，什么都可以自学，前提是你得能学得会，见过N多菜鸟踏上上自学的不归路，他妈的什么都能自学的话，还用大学干什么？自己在家鳖不就行了？<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;动不动就说Python是个脚本语言，自己看看就不会了，说这话的只可能有两种人，一种是高手，一种是SB，对于高手来讲，他肯定已经会其它语言，Python在这种情况下，自学当然就很容易学会，几年前我刚接触Python时，代码遇到问题，找了个开发的哥们帮调试，哥们帮调了十几分钟就搞定了，结果人家以前一句Python代码也没写过，为什    么，因为语言都有相通之处，一门掌握好了，其它门自己学学就会了。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;但对于新手来讲，没任何语言基础就开始自学，那么恭喜你，菜鸟们见此文章为证，从今天开始自学，一年后，你要是能自己做出个软件来，来找我要一千块钱。哈哈，真的。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;基本上自学是属于专业人员干的事情，就像会一门乐器了，自己学下就可能学会另一门，但我之前没音乐基础，跟着老师都没把吉它学会。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;所以奉劝没基础又想学Python的同学，花点钱去报个班学吧，拿钱换时间，时间是生命，钱没了可再挣钱，时间过去了就再也不会回来，如果你不信邪，非要自己学，那我    佩服你的勇气，不过自己试试就知道了。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;当然天下没有绝对的事情，我大天朝牛X的人多了去了，很多人也能过自学编程，最后变成高手了，我的Python也是自学的，但是我可以说自学过程中走过了N多坑好么，好多时候纠结在一个简单的小问题上好几天都卡住，当时如果不是因为工作需求，估计早放弃了，这还是Python，就别说其它复杂的语言了，我相信除了少数的大牛之外，多数    人不比我聪明到哪去，选择自学的同鞋们，一路珍重。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;说了这么多，只想告诉那些迷茫不知所措该学什么语言的新手们，　在你还没学好走路的时候，不要老想着，将来我当上老板了，我是开宝马呢？还是开奔驰呢？先学会骑自行车吧！</p>

	

	
		<span class="different-posts"><a href="/2017/10/12/Python/1. Python 基础篇/1. Python 基础语法/1.1 为什么学习 Python/1. 为什么要学 Python/" onclick="window.history.go(-1); return false;">⬅️ Go back </a></span>

	

</article>

	</main>

	<footer class="footer">
	<div class="footer-content">
		
	      <div class="footer__element">
	<p>Hi there, <br />welcome to my Blog glad you found it. Have a look around, will you?</p>
</div>

	    
	      <div class="footer__element">
	<h5>Check out</h5>
	<ul class="footer-links">
		<li class="footer-links__link"><a href="/archives">Archive</a></li>
		
		  <li class="footer-links__link"><a href="/atom.xml">RSS</a></li>
	    
		<li class="footer-links__link"><a href="/about">about page</a></li>
		<li class="footer-links__link"><a href="/tags">Tags</a></li>
		<li class="footer-links__link"><a href="/categories">Categories</a></li>
	</ul>
</div>

	    

		<div class="footer-credit">
			<span>© 2017 失落的乐章 | Powered by <a href="https://hexo.io/">Hexo</a> | Theme <a href="https://github.com/HoverBaum/meilidu-hexo">MeiliDu</a></span>
		</div>

	</div>


</footer>



</body>

</html>
